import java.util.Scanner;
import java.util.*;
public class test {
    /*给你一个长度为 n 的整数数组 nums 和 一个目标值 target。
    请你从 nums 中选出三个整数，使它们的和与 target 最接近。
    返回这三个数的和。
    假定每组输入只存在恰好一个解。*/
    public static int seek(int[] nums,int target) {
        Arrays.sort(nums);
        int result=nums[0]+nums[1]+nums[2];
        if(result>target){return result;}
        for(int i=0;i<nums.length;i++){
            int l=i+1;
            int r=nums.length-1;
            //排除重复元素
            if(i>0&&nums[i]==nums[i-1]){
                continue;
            }
            while(l<r){
                int current=nums[i]+nums[l]+nums[r];
                //更新结果
                if(Math.abs(current-target)<Math.abs(result-target)){
                    result=current;
                }
                if(current>target){
                    r--;
                }
                else if(current<target){
                    l++;
                }
                else return target;
            }
        }
        return result;
    }
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int target=sc.nextInt();
        int result=seek(nums,target);
        System.out.println(result);
    }
}
